package persistencia;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import modelo.Incidente;
import modelo.Tecnico;

public class AdmPersIncidente {
	public static AdmPersIncidente instancia;
	
	public static AdmPersIncidente getInstancia(){
		if (instancia==null)
			instancia = new AdmPersIncidente();
		return instancia;
	}
	
	public Incidente selectIncidente(int numero){
		Connection con = PoolConnection.getPoolConnection().getConnection();
		String senten = "select*from zzz.dbo.incidentes where numero = ?";
		Incidente incidente = null;
		try {
			PreparedStatement ps = con.prepareStatement(senten);
			ps.setInt(1, numero);
			ResultSet rs = ps.executeQuery();
			while(rs.next()){
				Tecnico tecnico = AdmPersTecnico.getInstancia().selectTecnico(rs.getString(2));
				incidente = new Incidente(rs.getString(3),numero,tecnico);
			}
			PoolConnection.getPoolConnection().releaseConnection(con);
			return incidente;
			
		} catch (SQLException e) {
			System.out.println("error en select incidente");
		}
		return incidente;
		
	}
	
	public void insertIncidente(int numero, String dni, String estado){
		Connection con = PoolConnection.getPoolConnection().getConnection();
		String senten = "insert into zzz.dbo.incidentes values (?,?,?)";
		try {
			PreparedStatement ps = con.prepareStatement(senten);
			ps.setInt(1, numero);
			ps.setString(2, dni);
			ps.setString(3, estado);
			ps.execute();
			PoolConnection.getPoolConnection().releaseConnection(con);
			
		} catch (SQLException e) {
			System.out.println("error en insert incidente");
		}
	}

	public String mostrarIncidente(int numero) {
		try {
			Incidente incidente = AdmPersIncidente.getInstancia().selectIncidente(numero);
			String datos = numero+incidente.getTecnico().getNombre()+incidente.getEstado();
			return datos;
		} catch (Exception e) {
			System.out.println("error en mostrar");;
		}
		return null;
	}
}
